﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace proyectoENS
{
    public partial class MDIMain : Form
    {
        public MDIMain()
        {
            InitializeComponent();
            
        }

        private void testConection()
        {
            proyectoENSEntities db = new proyectoENSEntities();
            try
            {
                db.Connection.Open();
            }
            catch (Exception ex)
            {
                DialogResult res = MessageBox.Show("No se ha podido establecer la conexion al servidor de base de datos." + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                if (res == System.Windows.Forms.DialogResult.Retry)
                    testConection();
                else
                    Application.Exit();
            }
        }
        private void MDIParent_Load(object sender, EventArgs e)
        {
            testConection();
            frmLogin frmLogin = new frmLogin();
            frmLogin.MdiParent = this;
            frmLogin.Show();
            frmLogin.FormClosed += new FormClosedEventHandler(frmLogin_FormClosed);
          
        }
        private void frmLogin_FormClosed(object sender, EventArgs e)
        {
            if ((Thread.CurrentPrincipal.Identity == null))
                Application.Exit();
            if ((Thread.CurrentPrincipal.Identity.IsAuthenticated) == false)
            {
                this.menuStrip.Enabled = false;
            }
            if (Thread.CurrentPrincipal.Identity.IsAuthenticated)
                label1.Text = "Bienvenido: " + Thread.CurrentPrincipal.Identity.Name.ToString();
          
            return;

        }
        private void agregarAlumnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //frmAltaAlumno frm = frmAltaAlumno.onlyInstancia;
            frmAltaAlumno.onlyInstancia.MdiParent = this;
            frmAltaAlumno.onlyInstancia.Show();
            frmAltaAlumno.onlyInstancia.Activate();
            frmAltaAlumno.onlyInstancia.WindowState = FormWindowState.Normal;
            //frm.MdiParent = this;
            //frm.Activate();
            //frm.Show();
        }

        private void editarDatosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmBuscarAlumnos frm = new frmBuscarAlumnos();
            frm.MdiParent = this;
            frm.Show();
        }

        private void clasesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAsistencia.onlyInstancia.MdiParent = this;
            frmAsistencia.onlyInstancia.Show();
            frmAsistencia.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void listadoDeAsistenciasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmListaAsistencia.onlyInstancia.MdiParent = this;
            frmListaAsistencia.onlyInstancia.Show();
            frmListaAsistencia.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void solicitarSancionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmSansiones.onlyInstancia.MdiParent = this;
            frmSansiones.onlyInstancia.Show();
            frmSansiones.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void confirmaraSolicitudesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Thread.CurrentPrincipal.Identity.IsAuthenticated == true && Thread.CurrentPrincipal.IsInRole("Rector"))
            {
                frmConfirmarSancion.onlyInstancia.MdiParent = this;
                frmConfirmarSancion.onlyInstancia.Show();
                frmConfirmarSancion.onlyInstancia.WindowState = FormWindowState.Normal;
            }
            else
                MessageBox.Show("Ud no posee los privilegios necesarios para ejecutar esta acción");
        }

        private void novedadesDeAlumnosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmNovedades.onlyInstancia.MdiParent = this;
            frmNovedades.onlyInstancia.Show();
            frmNovedades.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void trismestralesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmRegistrarNotas.onlyInstancia.MdiParent = this;
            frmRegistrarNotas.onlyInstancia.Show();
            frmRegistrarNotas.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void calificacionesExamenesToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void agregarCursoToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            frmAltaCurso.onlyInstancia.MdiParent = this;
            frmAltaCurso.onlyInstancia.tabControl.SelectTab(0);
            frmAltaCurso.onlyInstancia.Show();
            frmAltaCurso.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void asignacionDeAlumnosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAsignarAlumnosCursos.onlyInstancia.MdiParent = this;
            frmAsignarAlumnosCursos.onlyInstancia.Show();
            frmAsignarAlumnosCursos.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void modalidadesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAltaCurso.onlyInstancia.MdiParent = this;
            frmAltaCurso.onlyInstancia.tabControl.SelectTab(1);
            frmAltaCurso.onlyInstancia.Show();
            frmAltaCurso.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void estadoAcademicoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmEstadoAlumnos.onlyInsancia.MdiParent = this;
            frmEstadoAlumnos.onlyInsancia.Show();
            frmEstadoAlumnos.onlyInsancia.WindowState = FormWindowState.Normal;
        }
        private void inscripcionAExamenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmIncripcionExamen.onyInstancia.MdiParent = this;
            frmIncripcionExamen.onyInstancia.Show();
            frmIncripcionExamen.onyInstancia.WindowState = FormWindowState.Normal;
        }
        private void verListadDeSancionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
                frmBuscarAlumnos frm = new frmBuscarAlumnos();
                frm.ShowDialog();
                if (frm.selected != null)
                {
                    frmListaSanciones frms = new frmListaSanciones();
                    frms.alumno = frm.selected;
                    frms.MdiParent = this;
                    frm.Show();
                    frm.WindowState = FormWindowState.Normal;
                }
        }

        private void calificacionesToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            frmCalificacionesExamenes.onlyInstancia.MdiParent = this;
            frmCalificacionesExamenes.onlyInstancia.Show();
            frmCalificacionesExamenes.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void aprobadosYDesaprobadosPorCursosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
        }

        private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void profesoresToolStripMenuItem1_Click(object sender, EventArgs e)
        {

        }

        private void agregarProfesorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAltaAlumno.onlyInstancia.MdiParent = this;
            frmAltaAlumno.onlyInstancia.Show();
            frmAltaAlumno.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void editarDatosToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            frmBuscarProfesor.onlyInstancia.MdiParent = this;
            frmBuscarProfesor.onlyInstancia.Show();
            frmBuscarProfesor.onlyInstancia.WindowState = FormWindowState.Normal;
        }

        private void nuevoUsuarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAltaUsuario.onlyInstancia.Show();
            frmAltaUsuario.onlyInstancia.Activate();
            frmAltaUsuario.onlyInstancia.MdiParent = this;
        }

        private void alumnosToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void listarTutoresToolStripMenuItem_Click(object sender, EventArgs e)
        {

            frmBuscarAlumnos frm = new frmBuscarAlumnos();
            frm.ShowDialog();
            if (frm.selected != null)
            {
                frmMostrarTutores.onlyInstancia.unAlumno = frm.selected;
                frmMostrarTutores.onlyInstancia.MdiParent = this;
                frmMostrarTutores.onlyInstancia.Show();
                frmMostrarTutores.onlyInstancia.WindowState = FormWindowState.Normal;
            }
        }

        
    }
}

